1. Field of the Invention
The present invention relates to data communications systems. More particularly, it relates to an automated communications system which coordinates the transfer and content of data, metadata, and instructions between databases in order to simplify, automate, and increase the intelligence of communications.
2. Discussion of the Related Art
All communications consist of a mechanism for exchanging information between one entity, a provider, and another, a consumer. The terms "provider" and "consumer" are used to designate separate functions in information transfers. Typically an entity, at various times, operates as both a provider and a consumer in any communication relationship. Significant work is required of both the provider and consumer simply to establish and maintain a communications relationship so that information can flow freely between them. Initially, consumers must first find the appropriate providers from whom to obtain the information they need. Then contact information (e.g., names, titles, addresses, telephone numbers, electronic mail addresses, etc.) must be exchanged between the provider and consumer. The contact information must be maintained by both parties so that future communications can be effected as needed. When the contact information changes for an entity, all consumers or providers having relationships with the entity must be notified of the changes. This involves more work for one or both parties to the relationship. Each must maintain accurate records of the other, notify the other of changes, and record changes received. This work extends to other data and records exchanged in the context of the communications relationship, e.g. orders, receipts, product numbers, invoice numbers, customer numbers, notes, brochures, reports, etc. Maintenance of this information requires significant human time involvement for receiving information, storing information, indexing information, searching for desired information, and retrieving information. The human component of record maintenance also creates a potential for error which can cause the information to be faulty or to become lost.
In addition to creating and maintaining communication relationships, information providers want to disseminate information about themselves or their products and services to consumers. Optimally, such information would be disseminated only to persons who need the information and only at the times that they need it. However, knowing who needs what information and when it is needed can be difficult. Therefore, providers typically disseminate information widely in the form of mass advertisements and mailings in order to reach all likely consumers.
Because of this broad dissemination by providers, consumers receive large amounts of information much of which is irrelevant to them. The consumer is forced to sort and filter through this information. Much of the information may be discarded. Information which is kept may not be immediately useful, but may be needed at a later time. Unless the consumer expends a great deal of work to store, catalog, and index this information, at the point the consumer needs it the information can be difficult or impossible to find. The provider, for its part, knows what information the provider has available, as well as the best way to access it. However the provider does not have any simple ways to know which consumers need what information at what times.
There is one more dimension to the communications relationship, and that is the work required for the consumer to respond to information of interest. For example, to order a product, the consumer must place a telephone call, locate a salesperson, and then manually transmit the necessary ordering information, which the salesperson must manually record. Paper or electronic product order forms can help automate this process for the provider, but these must be filled out by the consumer. Many of these forms require the same standard information from the consumer, which the consumer must enter repeatedly. All of these information transfers require human involvement and thus create the potential for data errors. On the provider's part, more work is required to perform error checking on the order, process it, and if necessary return an acknowledgment to the consumer. Many providers invest heavily in data processing and electronic communications systems for automating these functions. However, the lack of a standard communications system for exchanging common data results in largely proprietary systems, increasing the investment necessary for every provider. In addition, consumers must still interact with each these systems manually.
Therefore, a need exists for a communications system which allows providers and consumers to easily establish an automated communications relationship in which providers can easily offer the information consumers need, and consumers can easily access the information they need when they need it. A need also exists for a communications system which allows a provider to actively notify consumers of new information in which the they be interested, and which also allows the consumer to filter information being sent by one or more information providers so that the consumer is not distracted by receipt of unwanted and irrelevant information. A need also exists for a system which allows consumers to easily respond to information which interests them, and which allows both providers and consumers to automatically exchange and process incoming or outgoing communications data whenever possible.
Various computer-based systems have been created to provide mechanisms for communicating information. The Internet and World Wide Web provide a network of a large number of information sources, providing a voluminous amount of information. Computer programs exist which can be executed on Internet-connected computers to search these sources to obtain desired information. Additionally, through the medium of hypertext, providers of World Wide Web pages can create links in their pages between items of related information which can significantly aid consumers in finding desired information. However, these links to the information source are neither dynamic nor persistent; in the sense that they do not provide new or updated information once the consumer has found a topic of interest. "Bookmarks" in a Web browser program can facilitate subsequent access to a particular web page to determine if new information is present. However, if the web page referenced by the bookmark is removed, the bookmark is no longer valid. Bookmark polling programs, such as Smart Bookmarks from First Floor, Inc., can also be used to determine whether a web page has changed since the last time the consumer viewed it. In addition, Smart Bookmarks can examine a changed page and automatically transfer to the consumer a text string embedded by the author of the page informing the consumer of the nature of the change. However, Smart Bookmarks' capability is limited to single text strings on single web pages. Therefore the consumer must locate and bookmark every Web page of interest. Smart Bookmarks does not provide a way for the consumer to filter the update messages, nor does it provide the consumer with a means for responding to the changed information other than revisiting the page involved.
Online navigation or "auto pilot" software, available from various commercial online services or software companies, can add additional functionality to basic access to online service, the Internet, and other public networks. The software provided by these services or companies can include capabilities such as automatic logons, automatic navigation of the online system according to consumer preferences, file searches, uploading and downloading data, and storage of data. Some systems can also automatically download the data necessary to update their own operation. However, the navigation software available from the online services typically requires that the consumer first establish an account with the online service, and may also involve establishing accounts with specific providers on the service. In addition, these navigator programs are specifically designed to work with the architecture and communications protocols of the online service, and cannot be easily adapted to other data communications networks, thus preventing other providers from using the functionality of the online service to create and distribute data in the same manner. Finally, they also require that the consumer devote the effort to setting up and maintaining the communications relationship the consumer wishes to have with each information provider on the service. This last disadvantage also applies to online navigation programs designed to work with the Internet and other non-proprietary public data networks.
Electronic mail (e-mail) systems are another electronic communications system that provides some communications contact persistence. E-mail addresses and messages can be stored and indexed within e-mail programs, or externally in other locations. E-mail rules engines allow for some degree of automated storage or response to certain message contents. However, these rules engines are typically constrained to acting on certain known information about the messages, such as the address of the sender, or on semantic rules such as keywords which must be guessed by the sender and recipient. There is no common communications frame of reference, i.e., a structured data format and data operations methodology, against which both the sender and recipient can operate to filter, classify, and organize messages. The lack of a common frame of reference also severely limits the capability of either the sender or receiver to automatically process the contents of an e-mail message, or to provide a means for the recipients of a message to automate their response to the message other than the ability to automatically address a response to the sender of a message or to the sender plus all other recipients of a message.
E-mail systems which support electronic forms overcome some of these limitations. Electronic forms can be used to automatically or semi-automatically gather data and route it around a network. Electronic forms also allow message recipients to automate a response to the message sender which can be automatically processed by the sender. However, these forms must be received and processed by the recipient in the same manner as conventional e-mail messages, so they do not provide a means for the recipient to filter messages from different senders. In addition, while they may automate the sender's ability to process the data returned from the forms, the recipient must still manually enter information in the form. Forms also do not provide the recipient with a mechanism for automatically storing, indexing, or processing information from the sender.
Specialized e-mail systems have been developed that combine the use of electronic forms with a system-wide data processing model. Examples are The Coordinator from Action Technologies, Inc., or OVAL from the MIT Center for Coordination Science. These systems allow senders and recipients to share a frame of reference for messaging such that messages can be classified into specific categories and actions. This allows message senders and recipients to automate the routing, storage, and processing of messages based on these category and actions. However, these systems require that all senders and recipients share the same frame of reference. They do not provide a generalized means for each sender on the system to establish their own frames of reference with one or more recipients, nor a generalized means for each recipient to coordinate the frames of reference they have with different senders, while still using a generalized data storage and processing model that can be shared among all users of the system.
A different approach to the problem of automating communications is the category of software that is commonly referred to as "software agents" or "mobile agents". An example is a platform for communications applications developed by General Magic, Inc. called Telescript. The Telescript language is an object-oriented, remote programming language with three core concepts: agents, places and "go". Agents "go" to places, where they interact with other agents to get work done on a user's behalf. Agents are mobile programs capable of transporting themselves from place to place in a Telescript network. The language is implemented by the Telescript engine. The Telescript engine is a multitasking interpreter that integrates onto an operating system through a programming interface called the Telescript API. The Telescript engine operates on server computers interoperating on a communications network. Telescript agents can operate independently anywhere within these server computers to control the transfer of message data and perform programmable actions upon that message data. For example, if a message recipient is not available, the message could be rerouted to a different location, rather than being returned to the sender undelivered. Telescript is similar to other agent technologies in that the architecture is based on agents interacting with other agents on server computers running the agent "engines" or interpreters. In this architecture, the establishment of a communications relationship requires two agents: one to represent the provider and one the consumer. Although agent programming systems like Telescript provide the necessary tools for creating these agents, it is still necessary for both the provider and consumer to create and administer the necessary agents. Furthermore, Telescript does not provide a specific data model for the filtering, storage, and indexing of communications between a provider and consumer. Lastly, agent architectures require the addition of servers running agent interpreters or "engines" to the communications network in order to operate, increasing the expense and complexity of the network.
Another approach to automating communications and information transfers is shared replicated database systems such as Lotus Notes and Collabra Share. With these systems, information to be communicated is entered via a client program into shared databases which may reside locally on client computers or on network server computers. These databases are then replicated through the server computers to other server computers or local client computers throughout the system so that the data can be accessed by any other user of the system who needs the information and has the proper access privileges. Access privileges are controlled by one or more system administrators via the system servers. Some of these systems, notably Collabra Share, also allow users to "subscribe" to specific databases. These users can receive an e-mail notification when a new entry has been made in that database. These systems may also employ electronic forms and forms processing languages to structure the data being entered into a database, and to take programmable actions based on the data entered. The architecture of these systems is designed for large groups of users to share information related to specific topics, and to automate the transfer of data between different computer applications used by an organization. For this reason the basic component of the architecture is an individual database or "forum". Each forum covers a number of related interest topics under which all forum entries are categorized. All copies of any forum are synchronized throughout the system when data in one copy has been changed.
While optimal for information sharing amongst the members of a group, this architecture is not well suited for automating communications relationships among a large number of information providers and consumers. First, all the providers and consumers need to be interconnected through the system in order to communicate. This could be done by having all providers and consumers enroll in one large system in which they all had access privileges. In such a system each provider would need to have at least one forum for communicating with his/her consumers. This enormous number of forums would then need to be replicated among the large number of servers required to service the complete population of the system, which would quickly overwhelm the capacity of the servers or network to handle replication. A more realistic alternative would be to have each provider or group of providers operate and administer their own system, making their internal forums available to consumers via public data networks such as the Internet. Consumers would use the system client software to "subscribe" to the forums of each provider with which they desire to communicate. Only the forums a consumer subscribed to would be replicated on his/her desktop. This solution would spread the replication load to a large number of servers, each handling a smaller amount of traffic. However, each server would now have to manage replication for a large number of external consumers as well as internal group members. There is no way to distribute this replication load to the consumer's computer. Second, because replication is handled at the forum level, consumers cannot fully filter the incoming communications from providers; they must still scan the forums for items of interest. Providers could surmount this by creating a forum for each interest topic, but the additional administrative overhead and server replication overhead would strongly discourage this. Third, because notification of new information is handled via a separate application, e-mail, the consumer is forced to coordinate notification and data storage/response among two communications systems. Finally, because the entire system depends on server-based replication, administrative changes or reconfigurations of these servers such as system name or address changes require that all subscribing consumers be updated, a job which consumers must handle manually.
Consequently, a need exists for an automated communications system which allows providers and consumers to quickly and easily establish an automated communications relationship, simplify the transfer and storage of information between both parties, provide a common frame of reference for the automated filtering and processing of information, and flexibly adapt to the multiple communications networks or systems that may be in use by either the provider or consumer.